/**
 * 医德医风公共模块
 * 
 * @Date: 2016-11-18
 * @author: Jackson wang
 * @version: 1.0
 * @since: 1.0
 */

define([ "jquery", "datagridServ", "sysmanMain","msgServ", "buttonEvent" ],
		function($, datagridServ, sysmanMain,  msgServ,buttonEvent) {
			
	'use strict';	
	
	var public_method = {
			
		/**
		 * 检查列表页面数据是否存在非法状态
		 * @param _options.grid			datagrid 对象
		 * @param _options.valStandard	标准值
		 * @param _options.fieldName	字段名称
		 * @return 1,存在非法值;0,不存在非法值
		 */
		isOverStatus:function(_options){
			private_method.isOverStatus(_options);
		}
		
		,
		/**
		 * 批量提交考评记录
		 * @param _options.rootId	dom对象根节点id
		 * @param _options.auditVal	下一状态设定值
		 * @param _options.valStandard	数据对象当前有效状态值
		 */
		auditList : function(_options){
			private_method.auditList(_options);
		}
		
		,
		/**
		 * 根据状态代码值返回状态名称
		 */
		getListStatus:function(_options){
			if(_options && _options.status){
				switch (_options.status){
					case '0':
						return '个人考评';
						break;				
					case '1':
						return '科室考评';
						break;
					case '2': 
						return '支部考评';
						break;
					case '3':
						return '医院考评';
						break;
					case '4':
						return '医德档案';
						break;
					default:
						return '';
						break;
				}
			}
		}
		,
		/**
		 * 获取查询条件
		 * @param _options.rootId	页面根节点
		 */
		getSearchValue:function(_options){
			
			
			var ret={};
			if(_options && _options.rootId){
				
				var $searchbox = $("#"+_options.rootId +" input.searchbox")
				if($searchbox.length>0){
					var _searchName, _searchValue
					//取值
					_searchValue = $($searchbox).searchbox('getValue')
					if(_searchValue){
						_searchValue = $.trim(_searchValue)
						if(_searchValue==='')
							return
					}			
						
					//取名称
					var _searchName = $($searchbox).searchbox('getName')
					if(_searchName){
						_searchName =$.trim(_searchName)
						if(_searchName===''){
							return
						}															
					}
					
					ret[_searchName]=_searchValue;
					
					return ret
				}
				
			}
		}
		,
		/**
		 * 医德医风管理公共删除方法
		 * @param _options.url	删除路径
		 * @param _options.target	目标grid
		 */
		del:function(_options){
			var _default = 
				{url : '/honest/ethicEvaluate/del.action'}
			
			_default = $.extend({},_default,_options);
			
			if(_options && _options.target){
				datagridServ.delRow(_default);
			}
		}
	}
	
	
	var private_method = {
			
	
		/**
		 * 检查列表页面数据是否存在非法状态
		 * @param _options.grid			datagrid 对象
		 * @oaram _options.data			datagrid 选中的数据
		 * @param _options.valStandard	标准值
		 * @param _options.fieldName	字段名称
		 * @return 1,存在非法值;0,不存在非法值
		 * 
		 */
		isOverStatus:function(_options){
			
			var _status = 0;
			if(_options){
				var _default = {
					fieldName:'status',
					data:_options.data
				}
				
				if( _options.grid){
					_default.data =  $(_options.grid).datagrid('getSelections');
				}
				//合并参数及默认值
				var _df = $.extend({},_default,_options);
				
				
				if( _df.data && _df.valStandard){
					//数据有效			
					var _data = _df.data;
					//获取标准值
					var _val = _options.valStandard;
					
					//判断数据是否有效
					if(_data &&  (_val || (_val == 0) ) ){
						$.each(_data,function(i,o){
							//循环迭代判断
							if(o && o[_df.fieldName]){
								
								var _tval = o[_df.fieldName]
							
								if(_tval!=_val){
									_status = 1;
									//终止整个循环
									return false;
								}
							}else{
								
								//标志位赋值，存在非法数据
								_status = 1;
								
								//终止整个循环
								return false;
							}
						})
					}
				}else{
					//参数无效或数据为空
					_status = 1;
				}
			}
				
			return _status;
		}
	
	,
	/**
	 * 批量提交考评记录
	 * @param _options.rootId	dom对象根节点id
	 * @param _options.auditVal	下一状态设定值
	 * @param _options.valStandard	数据对象当前有效状态值
	 */
	auditList : function(_options) {

		//参数有效性判断
		
		if(!_options || !_options.rootId ){
			//参数不合法
			return ;
		}else{
			var _adVal
			if(!_options.auditVal){
				if(_options.auditVal == 0){
					
				}else{
					//参数不合法
					return
				}
			}
		}
		
		var tempRootId = _options.rootId;
		var target_grid = $('#' + tempRootId + ' .dg-list');
		
		var _auditVal = _options.auditVal
		var records
		
		// 审核url
		var _auditListUrl = '/' + sysmanMain.getRootPath()
				+ '/ethicEvaluate/saveList.action'
		// 判断gird是否存在，并生成grid选中记录ids
		if (target_grid.length == 1) {
			
			if(window.console){
				console.log('audit list fired ...')
			}
			
			
			records = $(target_grid).datagrid('getSelections')
			
			
			if (records && records.length > 0) {
				
				//检查数据状态是否合法
				var _st = private_method.isOverStatus({
					data:records,
					valStandard:_options.valStandard
				})
				
				if(_st){
					//存在非当前节点数据
					msgServ.Msgslide('选中数据中包含非当前节点数据，请重新选择');
					return
				}
				
				//循环赋值审核状态
				for (var i = 0; i < records.length; i++) {
					var el = records[i];
					el.status = _auditVal
				}

				//审核操作确认提示
				$.messager
						.confirm(
								'警告',
								'提交后将无法修改考评内容，确定执行操作?',
								function(r) {									
									
									if (r) {
										var _data = $.toJSON(records)
										var _param = {
											url : _auditListUrl,
											type : 'post',
											contentType : "appliction/json;charset=utf-8",
											data : _data,
											success : function(data) {
												msgServ
														.Msgslide('提交操作成功');
												$(target_grid)
														.datagrid(
																'clearSelections')
												$(target_grid)
														.datagrid(
																'load')

											},
											error : function() {
												msgServ
														.Msgslide('提交操作失败');
											}
										}
										$.ajax(_param)
									}
								})

			} else {
				msgServ.Msgslide('请选择提交的记录');
				return

			}
		}
	}

	}
	
	return public_method;
		
})